/*
 * ================================================================================页面初始化函数
 */
$(function()
{	
	//页面回显,单选或者多选被选中
	$('.selectResult').each(function()
	{
		if($(this).val()=="true")
		{
			$(this).prev().parent().css("background-color","blue");
			$(this).prev().parent().css("color","white");
			$(this).prev().removeClass("uncheck").addClass("check");
		}
	});
	
	//YN型问题回显
	$('input[type=checkbox]').each(function()
	{
		if($(this).val()=="true")
		{
			$(this).attr("checked",true);
		}
	});
	
});

/*
 * ================================================================================函数定义区
 * 
 */

/**
 * 多选框和单选框click事件
 * @param questionType 单选1,多选2
 * @param questionId
 * @param optionValue
 */
function setQuestionValue(questionType, questionId, optionValue)
{
	selectOrRemoveSelect(questionType, questionId, optionValue);

	getChoiceValue(questionId);

	validateInTime(questionId);
}

/**
 * YN选项change事件
 * @param $yn YNcheckbox对象本身
 * @param questionId
 * @param optionValue
 */
function setYNQuestionValue($yn, questionId, optionValue) 
{
	//如果选中，另一个选项去选中
	if($yn.is(":checked"))
	{		
		$yn.siblings().removeAttr("checked");
		$('#' + questionId).find("input[type=hidden]").val(optionValue);
	}
	else
	{	//去选中,不赋值
		$('#' + questionId).find("input[type=hidden]").val("");
	}
	
	//实时验证
	validateInTime(questionId);
}

/**
 * 同步验证，不需要提交时候才提示
 * 
 * @param questionId
 */
function validateInTime(questionId) 
{	
	$("input[id=" + questionId + "]").each(function() 
	{
		if ($(this).val() == "") 
		{
			$(this).parent().prev().text("请选择至少一项");
		} 
		else
		{
			$(this).parent().prev().text("");
		}
	});
}

/**
 * 获得单选或者多选的值
 * 如果option选项被选中,将optionValue到str后面,以;分隔
 * @param questionId
 */
function getChoiceValue(questionId) 
{	
	var str="";
	
	$('#'+questionId).find(".item1").find(".question-option").children("div").each(function()
	{
		var checkVal=$(this).attr("class").split(" ")[1];		
		if(checkVal=="check")
		{
			 str += $(this).attr("class").split(" ")[0] + ";";
		}
	});
	
	//去掉最后一个;
	str = str.substring(0, str.length - 1);	
	$("input[id="+questionId+"]").val(str);
}

/**
 * 选中与去选中
 * @param questionType
 * @param questionId
 * @param optionValue
 */
function selectOrRemoveSelect(questionType, questionId, optionValue) 
{	
	var questionOption = $('#' + questionId).find('.' + optionValue);
	//选中
	if (questionOption.attr("class") == optionValue + " uncheck") 
	{
		questionOption.parent().css("background-color", "blue");
		questionOption.css("color", "white");
		questionOption.removeClass("uncheck").addClass("check");
		
		//如果是单选，选中一个同时其他的去选中
		if(questionType == '1')
		{
			questionOption.parent().siblings("div").css("background-color","rgb(191, 221, 249)");
			questionOption.parent().siblings("div").children("div").css("color","black");
			questionOption.parent().siblings("div").children("div")
			.removeClass("check").addClass("uncheck");
		}
	} 
	else 
	{
		//去选中
		questionOption.parent().css("background-color", "rgb(191, 221, 249)");
		questionOption.css("color", "black");
		questionOption.removeClass("check").addClass("uncheck");
	}
}
		
/**
 * 提交form调查问卷表单
 * @returns {Boolean}
 */
function submitQuestionForm()
{
	var count = commitValidate('.needValidate'); 
	
	//如果必输项的每一个问题都有值，则提交
	if(count==$(".needValidate").length)
	{
		openConfirm("确认提交吗？",null,function()
		{			
			//得到问卷的所有问题ID和答案
			var voteinfo = getFormList("questionForm");	 
			var formParas = JSON.stringify(voteinfo);
			$.ajax(
			{
				type: 'POST',
		        url: BASE_PATH +'/survey/surveyVote/updateVote.do?formParas='+encodeURIComponent(formParas),
		        dataType:"json",       
		        contentType:"application/json;charset=UTF-8",
				success : function(data) 
				{
					if(data=='success')
					{
						openAlert('保存成功',function()
						{
							$("#loadSurveyList").submit();
						});
					}
					else
					{
						openAlert('保存失败');
					}	
				},
				error:function(e)
				{
					openAlert('操作失败！错误信息：<div>'+e.responseText+"</div>");
				}
			});
		
		});
		
	} 
	else 
	{
		return false;
	}
}

/**
 * 验证单选、多选、YN是否有选中
 * @returns {Number}
 */
function commitValidate(element ) 
{	
	var count=0;
	
 	$('' + element).each(function()
 	{
  		 if($(this).val()=="")
  		 {
  			$(this).parent().prev().text("请选择至少一项");
  			openAlert("请选择至少一项！");
  		 }
  		 else
  		 {
  			$(this).parent().prev().text("");
  			count++;
  		 }
  	});
 	
	//有红色提示,不准提交
	$("span.validateError").each(function() 
	{
		if($(this).text()!="")
		{
			//返回一个与$(".needValidate").length不相等的数
			count = 9999999;
		}		
	});
	
	return count;
}

/**
 * 取消
 */
function cancelButton()
{	
	openConfirm('确定取消吗？', null, function() 
	{
		var type=$("#submitcurrentpage [name=type]").val();
    	if(type=="alreadyVoted")
    	{
    		$("#submitcurrentpage").submit();
    	}else{
    		$("#submitcurrentpage1").submit();
    	}
	});
}